package com.moli.iov.admin.model.vo.req;

import com.fasterxml.jackson.annotation.JsonFormat;
import java.util.Date;
import java.util.List;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

/**
 * 车载终端查询参数
 *
 * @author whl
 */
@Data
public class QueryVehicleTboxListParamVo extends BaseVo {

  /**
   * 车架号
   */
  private String vin;

  /**
   * 终端型号
   */
  private String deviceModel;

  /**
   * 终端ID
   */
  @NotBlank(message = "终端id不能为空",groups = Details.class)
  private String deviceId;

  /**
   * 供应商名称
   */
  private String supplierName;

  /**
   * 注册
   */
  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
  private Date startTime;
  /**
   * 注册
   */
  @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone="GMT+8")
  private Date endTime;
  /**
   * 公司id
   */
  private Long companyId;

  /**
   * 导出
   */
  private List<String> deviceIdList;
  /**
   * 授权状态（0::未授权1:已授权）
   */
  private Integer authorizedStatus;

  /**
   * sim卡号
   */
  @NotEmpty(message = "请输入sim卡号", groups = {VehicleFenceVo.Save.class, VehicleFenceVo.Update.class})
    @Length(min = 11, message = "sim卡号应至少5个字符", groups = {VehicleFenceVo.Save.class,
      VehicleFenceVo.Update.class})
  @Length(max = 20, message = "sim卡号输入字符上限为20个字符", groups = {QueryVehicleTboxListParamVo.Update.class,
      VehicleFenceVo.Update.class})
  private String simNo;

  /**
   * 品牌
   */
  private String brand;

  /**
   * 车系
   */
  private String vehicleSeries;

  /**
   * 车型
   */
  private String vehicleType;

  /**
   * 终端软件版本号
   */
  private String deviceSoftVersion;

  public interface Update
  {}

  /**
   * 详情
   */
  public interface Details
  {}
}
